package cn.larry.tools.md5;

/**
 * @version 1.0
 * @Author llin
 * @Date 2020/5/28 13:58
 */
public interface Md5 {

    /**
     * 16位的MD5加密
     *
     * @param str
     * @param charsetName 编码格式（default：UTF-8）
     * @return
     */
    public String encrypt16(String str, String charsetName);

    /**
     * 16位的MD5加密
     *
     * @param strByte
     * @return
     */
    public String encrypt16(byte[] strByte);

    /**
     * 16位的MD5加密（大写）
     *
     * @param str
     * @param charsetName
     * @return
     */
    public String encrypt16ToUpperCase16(String str, String charsetName);

    /**
     * 16位的MD5加密（大写）
     *
     * @param strByte
     * @return
     */
    public String encrypt16ToUpperCase(byte[] strByte);

    /**
     * 32位的MD5加密
     *
     * @param str
     * @param charsetName 编码格式（default：UTF-8）
     * @return
     */
    public String encrypt32(String str, String charsetName);

    /**
     * 32位的MD5加密
     *
     * @param strByte
     * @return
     */
    public String encrypt32(byte[] strByte);

    /**
     * 32位的MD5加密（大写）
     *
     * @param str
     * @param charsetName 编码格式（default：UTF-8）
     * @return
     */
    public String encrypt32ToUpperCase32(String str, String charsetName);

    /**
     * 32位的MD5加密（大写）
     *
     * @param strByte
     * @return
     */
    public String encrypt32ToUpperCase(byte[] strByte);

}
